﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ServiceGerenciador.Model;

public partial class paginas_Pessoas_Cadastro : System.Web.UI.Page
{
    protected int ModelId
    {
        get
        {
            if (Request.QueryString["Id"] != null)
            {
                return Convert.ToInt32(Request.QueryString["Id"]);
            }
            else 
            {
                return 0;
            }
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //retona vetor: FindAll();
            var estados = Estado.FindAll();

            ddEstado.DataSource = estados;
            ddEstado.DataTextField = "Nome";
            ddEstado.DataValueField = "Id";
            ddEstado.DataBind();

            ddEstado.Items.Insert(0, "-- SELECIONE --");
        }
        
        Initialize();
    }

    private void Initialize()
    {
        if (!IsPostBack)
        {
            if (this.ModelId > 0)
            {
                Person pessoa = new Person();
                pessoa = Person.Find(ModelId);

                pessoa.Estado = Estado.Find(Convert.ToInt32(pessoa.Estado.Id));
                ddEstado.SelectedValue = Convert.ToString(pessoa.Estado.Id);

                txtNome.Text = pessoa.Nome;
                //txtSobrenome.Text = pessoa.Sobrenome;

                pessoa.Sexo = (pessoa.Sexo == 0) ? eSex.Male : eSex.Female;

                rblSexo.SelectedIndex = Convert.ToInt32(pessoa.Sexo);
                txtCpf.Text = pessoa.CPF;
                txtRG.Text = pessoa.RG;
                txtDataNascimento.Text = Convert.ToString(pessoa.DataNascimento);

                if (txtDataNascimento.Text == "")
                {
                    lblSexo.Visible = false;
                    rblSexo.Visible = false;
                }
                txtEndereco.Text = pessoa.Endereco;
                txtCidade.Text = pessoa.Cidade;
                txtCep.Text = pessoa.CEP;
                txtFonePrincipal.Text = pessoa.FonePrincipal;
                txtFoneCelular.Text = pessoa.FoneCelular;
                txtEmail.Text = pessoa.Email.ToLower();
                txtIE.Text = pessoa.IE;
                txtObs.Text = pessoa.Obs;
            }
        }
    }


    protected void btnSalvar_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {                                      
                if (ModelId > 0)
                {                    
                    Person person = new Person();
                    person = Person.Find(ModelId);
                    DateTime? v_aniver;
                    v_aniver = null;

                    person.Estado = Estado.Find(Convert.ToInt32(ddEstado.SelectedValue));
                    person.Nome = txtNome.Text;
                   // person.Sobrenome = txtSobrenome.Text;
                    person.Sexo = (rblSexo.SelectedIndex == 0) ? eSex.Male : eSex.Female;
                    person.CPF = txtCpf.Text;
                    person.RG = txtRG.Text;
                    if (txtDataNascimento.Text == "__/__/____")
                    {
                        person.DataNascimento = v_aniver;
                        //funcionario.dataDemissao = v_demissao;
                                             
                    }
                    else
                    {
                        person.DataNascimento = Convert.ToDateTime(txtDataNascimento.Text);
                        //funcionario.dataDemissao = Convert.ToDateTime(txt_demissao.Text);
                        //person.DataNascimento = DateTime.Parse(txtDataNascimento.Text);
                    }          

                    //person.DataNascimento = DateTime.Parse(txtDataNascimento.Text);
                    person.Endereco = txtEndereco.Text;
                    person.Cidade = txtCidade.Text;
                    person.CEP = txtCep.Text;
                    person.FonePrincipal = txtFonePrincipal.Text;
                    person.FoneCelular = txtFoneCelular.Text;
                    person.Email = txtEmail.Text.ToLower();
                    person.IE = txtIE.Text;
                    person.Obs = txtObs.Text;

                    person.Update();

                    ApplicationEnvironment.Instance.Flash["Notice"] = "Pessoa atualizada com sucesso!";

                    Response.Redirect("Consulta.aspx");
                }
                else
                {
                    Person person = null;
                    person = new Person();
                    DateTime? v_aniver;
                    v_aniver = null;

                    person.Estado = Estado.Find(Convert.ToInt32(ddEstado.SelectedValue));
                    person.Nome = txtNome.Text;
                    //person.Sobrenome = txtSobrenome.Text;
                    person.Sexo = (rblSexo.SelectedIndex == 0) ? eSex.Male : eSex.Female;
                    person.CPF = txtCpf.Text;
                    person.RG = txtRG.Text;
                    if (txtDataNascimento.Text == "__/__/____")
                    {
                        person.DataNascimento = v_aniver;
                        //funcionario.dataDemissao = v_demissao;
                    }
                    else
                    {
                        person.DataNascimento = Convert.ToDateTime(txtDataNascimento.Text);
                        //funcionario.dataDemissao = Convert.ToDateTime(txt_demissao.Text);
                        //person.DataNascimento = DateTime.Parse(txtDataNascimento.Text);
                    }                     
                    person.Endereco = txtEndereco.Text;
                    person.Cidade = txtCidade.Text;
                    person.CEP = txtCep.Text;
                    person.FonePrincipal = txtFonePrincipal.Text;
                    person.FoneCelular = txtFoneCelular.Text;
                    person.Email = txtEmail.Text.ToLower();
                    person.IE = txtIE.Text;
                    person.Obs = txtObs.Text;

                    person.Save();

                    ApplicationEnvironment.Instance.Flash["Notice"] = "Pessoa cadastrada com sucesso!";

                    Response.Redirect("Consulta.aspx");
                }        
        }
    }
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("Consulta.aspx");
    }
    protected void btnExcluir_Click(object sender, EventArgs e)
    {

        Person person = Person.Find(ModelId);
        person.Delete();

        ApplicationEnvironment.Instance.Flash["Notice"] = "Pessoa excluída com sucesso!";

        Response.Redirect("Consulta.aspx");
    }

    protected void ddEstado_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
    protected void rblSexo_SelectedIndexChanged(object sender, EventArgs e)
    {
       
    }
}